EIQ_AIモデル作成

EIQ分析に基づくAI予測モデルの作成・学習・予測システム

VB.NET .NET Framework 4.8 Microsoft.ML Access (.accdb)

1. システム概要

本システムは、EIQ分析(Entry-Item-Quantity分析)の手法を用いて 出荷データからAI予測モデルを構築するWindows Formsアプリケーションです。

出荷先数(E)とアイテム数(I)を入力として、 バラ数量・行数・EIQ指標・ケース数・PL数・容積・重量など約160項目SDCA回帰(Microsoft.ML)で予測します。

主な機能

2. ファイル構成

ファイルクラス / モジュール役割
E0_メニュー画面.vb E0_メニュー画面F メインメニュー。各処理画面への遷移とDB状態確認
E1_データ前処理.vb EIQ_AIモデル前処理F 出荷データ取込・区分換算・EIQランク作成・T200テーブル作成
E2_モデルデータ設定.vb モデルデータ設定F E/I比率・ピッチ設定、T300_進行テーブル管理、E3画面への遷移
E3_モデルデータ作成.vb E3_モデルデータ作成F T300_進行に基づくT600_データモデル作成(バッチ処理)
E4_機械学習.vb E4_機械学習F Microsoft.MLによるモデル訓練・予測実行・結果エクスポート
EIQ_AI実証及び検証Pro.vb EIQ_AI実証及び検証Pro AI実証及び検証(将来拡張用)
K1.vb Module K1 グローバル変数・定数・ファイルパス管理
AccessDbManager.vb AccessDbManager Accessデータベース新規作成・Excelインポート
Access操作.vb SQL実行ヘルパー、テーブル操作共通処理
テーブル構造確認.vb テーブル構造の確認・診断ユーティリティ

3. 全体処理フロー

E0 メニュー画面 DB状態確認(T200テーブルの有無)→ 処理を選択
ルートA
出荷データから作成
Excelファイルを取込
ルートB
Tera計算.accdbにアタッチ
既存DBのT200をリンク
E1 データ前処理 Access新規作成 → Excelインポート → T110_区分換算 → T200作成 → GPLランク作成
E2 モデルデータ設定 E/I比率(50〜150%)・ピッチ(1〜20、既定5.9)の設定 → T300_進行テーブル作成
E3 モデルデータ作成 T300_進行の各レコードに対してT600_データモデルを生成(中断・継続可能)
E4 機械学習 データモデル.csv読込 → SDCA回帰モデル訓練(約160モデル) → 予測実行 → CSV出力
EIQ_AI 実証及び検証 学習済みモデルの精度検証・実データとの比較(将来拡張)

4. 各ステップ詳細

E0 メニュー画面 E0_メニュー画面F

アプリケーション起動時のエントリポイントです。

E1 データ前処理 EIQ_AIモデル前処理F

出荷データの取込からEIQ分析用のT200テーブル作成までを行います。

処理サブフロー(出荷データから作成)

出荷データ.xlsx Access新規作成 T000_出荷データ T100_Data
T100_Data T110_区分換算 T150_ランク集計 T180_EIQランク
T180_EIQランク T200 (EIQ加工データ) T160_GPLランク T200 (列追加)
処理内容生成テーブル
Access新規作成EIQ_AIモデル.accdbを新規作成
Accessインポート出荷データ.xlsxをAccessにインポートT000_出荷データ
T110_区分換算T100_Data作成、区分換算テーブル作成、各換算計算、出荷単位区分T100_Data, T110_区分換算
T200作成_EIQデータ加工ケース出荷/バラ出荷のEIランク集計、T180_EIQランク、T200テーブル統合T150_*, T180_EIQランク, T200
全出荷GPLランク全出荷GPLのE/Iランク作成、T200に列追加T160_全出荷E集計, T160_全出荷I集計
📌 ABCランク基準: ランクA1 / A2 / B / C / D の累計比率によるパレート分析に基づく5段階ランク付けを行います。 ランク設定は計算ルール設定タブでカスタマイズ可能です。

E2 モデルデータ設定 モデルデータ設定F

AIモデル学習用データの生成パラメータを設定します。

パラメータ範囲説明
E最小比率 / E最大比率50% 〜 150%出荷先数の変動範囲(正規値に対する比率)
I最小比率 / I最大比率50% 〜 150%アイテム数の変動範囲(正規値に対する比率)
レコードピッチ1 〜 20(既定 5.9)生成レコードの間隔(細かいほどデータ密度が高い)

T300_進行テーブル

E3 モデルデータ作成 E3_モデルデータ作成F

T300_進行テーブルの未処理レコードを順次処理し、T600_データモデルテーブルにデータを格納します。

T600_データモデル 構造(165フィールド)

カテゴリフィールド
基本情報モデル連番, 出荷先数, アイテム数, バラ数量, 行数5
E指標E1 〜 E55
I指標I1 〜 I55
行数ランク別行数01 〜 行数2525
バラ数ランク別バラ数01 〜 バラ数2525
ケース数ランク別ケース01 〜 ケース2525
PL数ランク別PL01 〜 PL2525
容積ランク別容積01 〜 容積2525
重量ランク別重量01 〜 重量2525
📌 中断・再開: 処理はT300_進行テーブルの作成Chkフラグで管理されるため、 途中で中断しても次回は未処理レコードから継続できます。 キーボード割り込み(GetAsyncKeyState API)による中断機能も搭載しています。

E4 機械学習 E4_機械学習F

Microsoft.MLライブラリを用いた回帰モデルの訓練と予測を行います。

機械学習パイプライン

データモデル.csv Features結合
(出荷先数, アイテム数)
MinMax正規化 SDCA回帰 .zipモデル保存
機能説明
データ読込データモデル.csvをLoadFromTextFileで読込、件数を表示
機械学習実行各出力フィールドごとにSDCA回帰モデルを訓練し、Models/フォルダに.zip形式で保存
学習済モデル読込保存済み.zipモデルを一括読込(再学習不要で予測可能)
予測実行出荷先数・アイテム数を入力 → 全モデルで予測 → DataGridViewに結果表示
結果エクスポート予測結果を予測結果.csvとしてUTF-8で出力

入出力

種別項目
入力(説明変数)出荷先数, アイテム数
出力(目的変数)バラ数量, 行数, E1-E5, I1-I5, 行数01-25, バラ数01-25, ケース01-25, PL01-25, 容積01-25, 重量01-25
(計 約160項目 × 各1モデル)

5. データベース構造

データベース: Tera計算Data\EIQ分析AI化\EIQ_AIモデル.accdb(Microsoft Access)

テーブル作成元用途
T000_出荷データE1(Excelインポート)出荷データ原本
T100_DataE1基本出荷データ(行連番付き)
T110_区分換算E1出荷区分に基づく換算データ
T150_C/B単位出荷E/I集計E1ケース/バラ出荷別のEI集計とABCランク
T160_全出荷E/I集計E1全出荷GPLランク(E/I別)
T180_EIQランクE1EIQランク統合テーブル(CE/CI/BE/BI)
T200E1EIQ分析加工済みデータ(全ランク・指標統合)
T300_進行E2モデルデータ作成の進行管理(連番・設定値・作成Chk)
T600_データモデルE3AI学習用モデルデータ(165フィールド)

6. 実行環境・前提条件

項目要件
フレームワーク.NET Framework 4.8
言語VB.NET(Windows Forms)
主要ライブラリMicrosoft.ML(SDCA回帰), ClosedXML, ADOX, Microsoft.Office.Interop.Access
データベースMicrosoft Access(ACE OLEDB 12.0)
データ保存先任意ドライブの Tera計算Data フォルダ(A:〜F: を自動検索)
必要ファイルTera計算Data\EIQ分析AI化\出荷データ.xlsx(出荷データから作成時)
📌 ファイルパス自動検出: K1.vbファイル確認() メソッドが A: 〜 F: ドライブを走査し、 Tera計算Data フォルダを自動検出します。 複数ドライブに存在する場合はエラーとなります。

7. データ変換フロー図

📄 出荷データ.xlsx
T000_出荷データ T100_Data T110_区分換算
T150_ランク集計 T180_EIQランク T200 (統合)
T160_GPLランク T200 (列追加)
T300_進行 (設定) T600_データモデル
📄 データモデル.csv 🤖 SDCA回帰モデル (.zip)
📊 予測結果.csv

EIQ_AIモデル作成 — README1.html